package czt.jiami;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;

import java.nio.charset.StandardCharsets;

/**
 * @author czt
 * @version 1.0
 * @since 2025/3/12
 */
@Slf4j
public class Base64Test {

    /**
     * 为什么叫Base64?  编码后由a-z、A-Z、0-9、+、/组成，共64个，base64以3字节为一组，如果最后一组不足3字节使用=补齐
     * 在utf-8中，一个中文占3字节，一个英文占1字节
     * 在gbk中，一个中文占2字节，一个英文占1字节
     * 测试Base64编码和解码
     */
    public static void main(String[] args) {
        String str = "cztJava";

        // 编码
        String base64String = Base64.encodeBase64String(str.getBytes(StandardCharsets.UTF_8));

        log.info("编码的字符串为:{}", base64String);

        // 解码
        byte[] bytes = Base64.decodeBase64(base64String);

        log.info("解码后的字符串为:{}", new String(bytes, StandardCharsets.UTF_8));
    }
}
